.\"   $Id: GENLIB_PLACE_SEG_REF.3,v 1.1 2002/03/08 14:08:10 fred Exp $
.\" @(#)GENLIB_PLACE_SEG_REF.3 2.11 01/92; Labo Cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
GENLIB_PLACE_SEG_REF
.XE \}
.TH GENLIB_PLACE_SEG_REF.3 "October 1, 1997" "ASIM/LIP6" "PROCEDURAL GENERATION LANGUAGE"
.SH NAME
GENLIB_PLACE_SEG_REF \- put a segment on a reference belonging an
instance in the current figure
.SH SYNOPSIS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include <genlib.h>
void GENLIB_PLACE_SEG_REF(insname, refname, layer, width, face)
char  \(**insname, \(**refname;
char layer, face;
long width;
.ft R
.fi
.so man1/alc_origin.1
.SH PARAMETERS
.TP 20
\fIinsname\fP
Name of the instance in the which the reference is to be searched for
.TP
\fIrefname\fP
Name of the reference to be used for the segment placement
.TP
\fIlayer\fP
Physical layer of the segment
.TP
\fIwidth\fP
Width of the segment
.TP
\fIface\fP
Face of the figure on which the segment is to be placed
.SH DESCRIPTION
\fBPLACE_SEG_REF\fP places a segment regarding the position
of the reference, \fIrefname\fP, in the instance called \fIinsname\fP.
The segment coordinates are computed from the reference coordinates and
the face given as argument.
.br
Two behaviours are expected, regarding the reference coordinates:
.TP 20
the reference is on the given face of the \fIabutment box\fP
the segment is not added, since it would have zero as length
.TP
the reference is anywhere else
A segment is drawn between the reference and the \fIabutment box\fP,  and is
given \fIlayer\fP and \fIwidth\fP as attributs.
One of its endpoint is given by the reference coordinates, the other one
comes from the \fIface\fP.
The \fIface\fP argument is meant in the placed instance, and can take any of
the following values:
.TP 20
\fBNORTH\fP
the other endpoint has, for absissa, the x coordinate of the top of the
\fIabutment box\fP of the cell, and for ordinate, the y coordinate of
the reference.
.TP
\fBSOUTH\fP
the other endpoint has, for absissa, the x coordinate of the bottom of the
\fIabutment box\fP of the cell, and for ordinate, the y coordinate of
the reference.
.TP
\fBEAST\fP
the other endpoint has, for absissa, the x coordinate of the reference and
for ordinate, the y coordinate of the right of the \fIabutment box\fP of the
cell.
.TP
\fBWEST\fP
the other endpoint has, for absissa, the x coordinate of the reference and
for ordinate, the y coordinate of the left of the \fIabutment box\fP of the
cell.
.SH ERRORS
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"GENLIB_PLACE_SEG_REF impossible : missing GENLIB_DEF_PHFIG"
.ft R
.RS
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
possible to place a reference inside it.
you must call \fBDEF_PHFIG\fP before any other layout action.
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"GENLIB_PLACE_SEG_REF impossible : missing GENLIB_DEF_PHFIG"
.ft R
.RS
No figure has been yet specified by a call to \fBDEF_PHFIG\fP. So it isn't
possible to place a reference inside it.
you must call \fBDEF_PHFIG\fP before any other layout action.
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"GENLIB_PLACE_SEG_REF impossible : no abutment box"
.ft R
.RS
The current figure does not have an \fIabutment box\fI. Use \fIDEF_AB\fP(3)
before this function.
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"illegal GENLIB_PLACE_SEG_REF : orientation is XX"
.ft R
.RS
The \fIface\fP parameter does not have a legal value, but \fIXX\fP.
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"illegal getphins : instance called \fIinsname\fP does not exist"
.ft R
.RS
No instance called \fIinsname\fP exists in the current figure
.RE
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
"illegal getphref : references called \fIrefname\fP does not exist"
.ft R
.RS
No reference called \fIrefname\fP exists in the model of the instance
\fIinsname\fP.
.RE
.SH EXAMPLE
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include <genlib.h>
main()
{
	/\(** Create a figure to work on  \(**/
	GENLIB_DEF_PHFIG("cell");
	GENLIB_PLACE("gaci0_b", "r1", NOSYM, 23L, 54L);
	/\(** Put a reference \(**/
	GENLIB_PLACE_SEG_REF("r1", "a_0", ALU2, 2, NORTH);
	/\(** Save that on disk \(**/
	GENLIB_SAVE_PHFIG();
}
.ft R
.fi
.SH SEE ALSO
.BR genlib (1),
.BR GENLIB_DEF_PHFIG (3),
.BR GENLIB_SAVE_PHFIG (3),
.BR GENLIB_PHREF (3),
.BR GENLIB_PHSEG (3),
.BR GENLIB_COPY_UP_REF (3),
.BR GENLIB_COPY_UP_ALL_REF (3),
.BR GENLIB_PLACE_SEG_REF (3),
.BR GENLIB_PLACE_SEG_REF (3),
.BR GENLIB_PLACE_SEG_REF (3).


.so man1/alc_bug_report.1

